/**
 * fileName:  FruitInfo.java
 * author:  Lei
 * Company:  Cloudland Studio
 * Createdate:  2014-6-22 下午5:01:42
 *
 * All rights Reserved, Designed By cloudland Copyright(C) 2010-2011
 *   
 * Modification  History:
 *     Date           Author        Version        
 * -------------------------------------------
 * 2014-6-22          Lei            1.0        
 *
 * Why & What is modified:
 * 1.0: 文件创建
 */
package org.cloudland.commercial.masterdata.bean;

import java.util.List;

 /**
 * <pre> 
 * TODO 请充分描述该类提供的作用, 或与其他类会有关联的使用。
 * 使用 java.lang.Object#toString(), 或者 {@link java.lang.Character Character} 等标签
 * </pre>
 * @ClassName  FruitInfo
 * @author  Lei
 * @version  %I%, %G%
 * @see  
 * @since   JDK1.6
 *
 */
public interface FruitInfo {

	/**
	 * 获取水果编号
	 * @return fruitId 水果编号
	 */
	String getId();

	/**
	 * 获取水果名称
	 * @return fruitName 水果名称
	 */
	String getFruitName();
	
	/**
	 * <pre>
	 * 获取水果名称拼音
	 * </pre>
	 *
	 * @return   
	 */
	String getFruitNamePinyin();
	
	/**
	 * 设置水果名称
	 * @param fruitName 水果名称
	 */
	void setFruitName(String fruitName);

	/**
	 * 获取水果别名
	 * @return fruitAliasName 水果别名
	 */
	String getFruitAliasName();

	/**
	 * 设置水果别名
	 * @param fruitAliasName 水果别名
	 */
	void setFruitAliasName(String fruitAliasName);

	/**
	 * 获取水果分类编号
	 * @return fruitCategoryId 水果分类编号 
	 */
	String getFruitCategoryId();
	
	/**
	 * <pre>
	 * 获取水果分类名称
	 * </pre>
	 *
	 * @return 水果分类名称  
	 */
	String getFruitCategoryName();

	/**
	 * 设置水果分类 
	 * @param fruitCategoryId 水果分类 
	 */
	void setFruitCategoryId(String fruitCategoryId);

	/**
	 * 获取出产国家
	 * @return countryId 出产国家
	 */
	String getCountryId();

	/**
	 * 设置出产国家
	 * @param countryId 出产国家
	 */
	void setCountryId(String countryId);

	/**
	 * 获取出产地
	 * @return regionId 出产地
	 */
	String getRegionId();

	/**
	 * 设置出产地
	 * @param regionId 出产地
	 */
	void setRegionId(String regionId);

	/**
	 * 获取描述
	 * @return description 描述
	 */
	String getDescription();

	/**
	 * 设置描述
	 * @param description 描述
	 */
	void setDescription(String description);

	/**
	 *获取禁忌
	 * @return taboo 禁忌
	 */
	String getTaboo();

	/**
	 * 设置禁忌
	 * @param taboo 禁忌
	 */
	void setTaboo(String taboo);
	
	/**
	 * <pre>
	 * 添加结构信息
	 * </pre>
	 *
	 * @param structure   
	 */
	void addStructure(FruitStructure structure);
	
	/**
	 * <pre>
	 * 获取水果结构信息
	 * </pre>
	 *
	 * @return   
	 */
	List<FruitStructure> getStructure();
	
	/**
	 * <pre>
	 * 添加参数与值关系信息
	 * </pre>
	 *
	 * @param argumentId
	 * @param costId   
	 */
	void addArgumentAndorCost(String argumentId, String... costId);
	
	/**
	 * <pre>
	 * 添加参数与自定义值信息
	 * </pre>
	 *
	 * @param argumentId
	 * @param customValue   
	 */
	void addArgumentAndorCustomCost(String argumentId, String customValue);
	
	/**
	 * <pre>
	 * 获取水果参数信息
	 * </pre>
	 *
	 * @return   
	 */
	List<FruitArgument> getArgumentInfo();
	
	/**
	 * <pre>
	 * 添加营养信息
	 * </pre>
	 *
	 * @param nutritionInfo   
	 */
	void addNutrition(FruitNutrition nutritionInfo);
	
	/**
	 * <pre>
	 * 获取水果营养信息
	 * </pre>
	 *
	 * @return   
	 */
	List<FruitNutrition> getNutrition();
	
	/**
	 * <pre>
	 * 提交
	 * </pre>
	 *   
	 */
	void submit();
}
